package context

import "github.com/gookit/validate"

// 定义登录请求需要校验的上下文
type LoginContext struct {
	Telephone  string `validate:"required" json:"telephone"`                   // 手机号
	Password   string `validate:"required|minLen:6|maxLen:16" json:"password"` // 密码
	CaptchaId  string `json:"captchaId"`                                       // 验证码的key
	VerifyCode string `json:"verifyCode"`                                      // 具体的验证码
	ErrorCount int64  `json:"errorCount"`                                      // 错误的次数
}

// Message 自定义验证器的错误信息（重写父类方法）
func (f LoginContext) Messages() map[string]string {
	return validate.MS{
		"required":          "{field}不能为空",
		"minLen":            "{field}不能少于%d位",
		"maxLen":            "{field}最大不能超过%d位",
		"VerifyCode.length": "{field}长度必须是%d位",
	}
}

// Translates 自定义字段翻译（重写父类方法）
func (f LoginContext) Translates() map[string]string {
	return validate.MS{
		"Telephone":  "用户手机",
		"Password":   "用户密码",
		"CaptchaId":  "验证码的key",
		"VerifyCode": "验证码",
	}
}
